The present invention relates to a computer system for operating a plurality of virtual machines on a real machine and in particular to a method of continued operation of a given virtual machine even if a failure occurs due to a program error in a monitor program for controlling the virtual machines.
A virtual machine system is defined as a system for simultaneously operating a plurality of virtual machines (VM) on a real or bare machine. The virtual machine system is provided with a virtual machine monitor (VMM) for controlling the virtual machines; it executes scheduling, dispatching and instruction simulation, etc. of the virtual machines.
A system for achieving the similar objective of the virtual machine system which is referred to as a logical partition system has been recently developed. This system provides users with a hypervisor which operates hardware so that the hypervisor is concealed from the users. A hypervisor is similar to machine monitor for a Virtual Machine System, and it is used as a logical partition system. There is a logical partition (LPAR) which corresponds to a virtual machine in a virtual machine system.
In the virtual machine system or logical partition system, a table for storing control information for the virtual machines and a table for storing information of the system are disposed on a main storage. Whenever each virtual machine is dispatched, control information on program status words (PSW) of the dispatched computer stored in the main storage and the values of various registers such as general register and control register and the values of various timers are set on the real machine for starting the operation of the virtual machines. Definition of guest mode and nonguest mode will be made herein. The guest mode is defined as a mode in which virtual machines are operated. The nonguest mode is defined as a mode in which a virtual machine monitor for controlling the operation of the virtual machines or a hypervisor is operated. Switching from the nonguest mode to the guest mode is performed by issuing a start interpretive execution instruction (SIE instruction) from the virtual machine monitor or the hypervisor. If the SIE instruction is issued, control information on the program status words relating to the virtual machines designated by an operand of the instruction and values of various registers such as general register and control register is set on the real machine so that the designated virtual machine commences operation.
The OS of the virtual machines accesses to the main storage by using an absolute address (guest absolute address) of the virtual machine. However, the guest absolute address is different from the absolute address (host absolute address) on a real storage of a real machine in which the virtual machine is operated. Accordingly, a processing to translate the guest absolute address designated by the OS of the virtual machines into a host absolute address is executed.
An article "A Method to Change Operating Modes between a Bare Machine and a Virtual Machine", Toshio Taguchi, et al., Transactions of Information Processing Society of Japan, Vol. 22, No. 3, May 1981, pp. 206 to 215 describes a method of continuous operation of virtual machines on a bare machine on switching of OSs which have been operated on virtual machines if a virtual machine system is incorporated on a bare machine in which the guest mode does not differ from the nonguest mode.